import request from "../../request";
import * as apis from "@shared/apis";

/**
 * 储值卡信息接口
 */
export interface IStoredValueCard {
    /** 储值卡ID */
    id: string;
    /** 卡号 */
    cardNumber: string;
    /** 卡片名称 */
    cardName: string;
    /** 充值金额 */
    rechargeAmount: number;
    /** 赠送金额 */
    giftAmount: number;
    /** 赠送积分 */
    giftPoints: number;
    /** 当前余额 */
    currentBalance: number;
    /** 有效期开始时间 */
    validFrom: string;
    /** 有效期结束时间 */
    validTo: string;
    /** 备注 */
    remark: string;
    /** 关联的客户ID */
    customerId: string;
    /** 关联客户 - 多对一关系 */
    customer: apis.customers.ICustomer;
}

/**
 * 客户基本信息接口
 */
export interface ICustomerBasicInfo {
    /** 客户ID */
    id: string;
    /** 客户编号 */
    code: string;
    /** 客户姓名 */
    name: string;
    /** 手机号码 */
    phone?: string;
}

/**
 * 储值卡统计信息接口
 */
export interface IStoredValueCardStatistics {
    /** 总卡片数量 */
    totalCards: number;
    /** 活跃卡片数量 */
    activeCards: number;
    /** 总余额 */
    totalBalance: number;
    /** 总赠送积分 */
    totalGiftPoints: number;
}

/**
 * 获取客户储值卡列表响应接口
 */
export interface IGetStoredValueCardsResponse {
    /** 客户基本信息 */
    customer: ICustomerBasicInfo;
    /** 储值卡列表 */
    cards: IStoredValueCard[];
    /** 统计信息 */
    statistics: IStoredValueCardStatistics;
}

/**
 * 获取指定客户的储值卡列表
 * @param customerId 客户ID
 * @returns 返回客户的储值卡列表及统计信息
 */
export async function get(customerId: string): Promise<IGetStoredValueCardsResponse> {
    const url = `/customers/${customerId}/stored-value-cards`;
    const response = await request.get<IGetStoredValueCardsResponse>(url);
    return response.data;
} 